@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} HE |||DDOS DOSDOS SYS }}}}CDOS SYS} 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DELV䌚 !B y` ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}LLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}1i1232435ޥ<<8}&;w87;K&&L&M&N& + 5J&&&© M2 -L*J&˜ ' 5&0& M2&,}& $+L*& & M2 H-ƅ& & M2 H- 1- *`RUNTIME ERROR AT LINE &&L*, ,L&-}` '' &L&PROGRAM STOPPED&&Ńł ȱ`iL 'HH Z*L/ * . M2 + Q. ..} @. M2 @. ' M2 + @. 'hhL@.ʥ`HHhh`8L'u/}`Huh` L*L' L*L' ) .. ( .. ' * @.L0}* ) .. ' :, ( .. ' + ' * ' + M2 :, @. *L* ) ' ' :, ( .. ' + ' * 1}' + M2 :, .. /( @. *L* ' Z* Q.L/` ) * ..L.. ) . .. + ' .. ' :,L' ) 2}' :, ' .. + 'L'K&L&M& ) M2 M2,M&eK&iL&`M&8LV& .. 3}Q.M&`ʔȱȱȱ Z*Șe惠 惨65*66* L*jem#6m$6 ..вH4}Hhh```L*ʱ` +⅄* &JL&J *HHl 5}JLw TO BOOT FOR DOS TO RERUNp B V8,` 3+ȱL*&&8#6$68凅刐S6}Jj)ee`ффiiLL+8LL+ LV&uuuL*87}` ,L*iL*豂Hȱh`p ,L*,H, BHI, 5 ?-N&h`8`8} :,L, :,#` :,0 :,0L, :,0` :,0L,L,`޵` `Ȕ`9}ʔ惥u`, BHI DEH 5 ?-HyN&N&hL* , ?-N&`,JJJJ`-:},- +- -0 -L* t-L*` -H t-h 0 -`L,8 0ƅ`66&L-HH` B VhH)Kh;})0 IJD-EB 5hL*S:,L*TUVL* -`,,L, ?-N&8ɰɅ ,`ʱȱȱ`ȵ<}ȵL*L* Q. @. @.ʥ @. .. Q. @.L3 Q. .. . . Z*uȱuȱu * Z* ..=}0 j,L3 ȱL* ~,L.ʵ`eeLV&HHhh`ؐHH Z*L>}/ *HH . .6 +i i .i i @.hh @. @. 'hh @.`HH Z*% *?}HH `2LQ/ Z* Q. LV& .6 + .. +` Z* Q.ޠ .. `2 +L/ L0H, B Vh`ҩ2ҵ ҵ@}  *L*H,BHI 5,h,LM2,DuEu *,IHKJBH 5hA} *L* -,H`B 5h`00LM2L*L* +`H *hLM21HZH eB}HHƆeiH Q.lꦆ M2Օ`0  L,`8`1-1- R- M201LM21C}01`K2 * Q.J2L2 M29 Ɔ채+K-J2L7280L2 .9K22K2LV& L2, Y2 . Y2 Y2 +D}, M2 +ƆеJ2 +`ʕ`66`HHH66666uuuhhhLE}* +愵 ' + 'I M2 380/66&&&`uuu` 3 3F}Ј 3 * +` 4B3C3 .A3B3A3B3C3 LV&ȥC3iA3B3 4`L$+3B3G} 3`LV&C38A3ƅ3 ȱC3A3B3` 3L33L3H 4 G3h`1+ %  H}88L 4 * *` * *`  * *` 4$' 4"0 40 4L, {4L, t4L,LI}M2LM25 M2 Q. .5555`H,? ,,HI5D55E5B 5H5h` VLV&5` J}45 M2555 M2L5 45LV&55, 555 M258e555 M2K2L1 K} 'L*hh iL* 5LD3 5L$+5B3&&ȱ0 6L5 6#6$6&& L5&&`L}i`K&&L&M&` 3+ȱ&&%8e慱HȱhױM&iK&iL&L*, BM}H Vh M2L*,&BH 5hN M2 *L M2ML*,%BNLMH 5hL*)*Z*w***`2`2+:,2+,,,j,YN},~,c,r,S,*$++++,,,1-.H----.`..0////D331000 1)&0001K0k04444{4t40&K'G(m(()0)])5555$155}1g1O}53%636&6661w8}8 8 8888(-9<G9Fe9d9n9x999999::#:L2:V9:`C:jL:tY:~]P}::::::::: ; ;; 4;4H;>O;HY;Rb;\k;ao;fz;p;z; ;;Ddq8@ /Q}R@@ h801  "R}# This program is Public Domain! "  " by gregg tavares"& Press for screeS}n or for printer./"K:7k86S5s5 9P5p5 9x @T}@:n8:$:% ?D:S7}:$q8GAI q8D:%" --- Press anU}y key ---k86: L @@ ?D:P7P:7 " Pause bV}etween pages(Y/N)?t8k86Y5y5 4;t84N5n5H; }B:$q8GAIq8D:%z;W}4 " --- Press any key ---k86; 4444 &J&˜ ' 5&0& M2&Z o---------------o o--o o--o o--o o--o ! ! !1 ! !2 ! !3 ! !4 ! ! Y} ! o--o o--o o--o o--o ! ! o--o o--o o--o o--o ! ! !5 ! !6 ! !7 ! !8 ! Z} ! Graphic ! o--o o--o o--o o--o ! ! o--o o--o o--o o--o ! ! !9 ! ![}10! !11! !12! ! ! o--o o--o o--o o--o ! ! o--o o--o o--o o--o ! \} ! !13! !14! !15! !16! ! ! o--o o--o o--o o--o ! ! o--o o--o o--o o]}--o ! ! !17! !18! !19! !20! o---------------o o--o o--o o--o o--o o--------------^}---------------------o ! 21 ! 22 ! 23 ! 24 ! 25 ! o-----------------------------------o _} 26 Instructions for the `} Icon Shop. Copyright 1986 Grea}gg Tavares The NightHawk Group The Icon Shop was designedb} to make up for the defficiencies in the graphic editor included with the PrintShop. It was also designec}d to allow the user to save PrintShop graphics in a DOS 2.0 compatible format so that the user's creationd}s may be traded with other users' creations, especially over a modem. See Diagram. e} 1-8) These are the colors and patterns you may draw with. Point to the one you want to use and press the f}button (or a key 1-8). A blue frame will appear around the color. Colors 3-8 are patterns. They may be g}used just like the first to colors. If you don't like the ones included with the Icon Shop you may edit h}them. First, point to the one you want to edit. If the blue frame is not around that pattern then pressi} the button. Now, point to a dot in the pattern and press the button. That dot will change to white if j}it was black, or to black if it was white. To save your patterns, insert a DOS 2.0 disk and press [CTRL]k}-W. Type a legal DOS 2.0 filename and press return. To load patterns you have previously saved press [CTRL]-R. l} 9) (D)raw-Point on the graphic to where you want to change a dot to the selected colom}r and press the button. 10) (L)ine-Point to where you would like to start a line and press then} button. Point to where you would like the line to end and press the button. 11) (R)ectangle-o}Point to where you would like one corner of a rectangle and press the button. Point to where you would lp}ike the opposite corner and press the button. 12) (B)ox-Point to where you would like one corner of a boq}x and press the button. Point to where you would like the opposite corner and press the button. r} 13) (O)val-Point to where you would like the center of an oval and press the button. Move the pointers} away from the center of the oval until you have the size and shape you want, then press the button. t} 13) (Q)Disc-Point to where you would like the center of a disc and press the button. Move the poiu}nter away from the center of the disc until you have the size and shape you want, then press the button.v} 14) (F)ill-Point to an area you would like to fill and press the button. If the fill gets stuw}ck press [ESC] (This only happens occasionally if the mirrors are on). 15) (C)apture-Point to x}one corner of the area you would like to capture and press the button. Point to the opposite corner of ty}he area and press the button. A new rectangle will appear. Move the new rectangle to the area where youz} would like to put what you have captured and press the button. (Also see 20-Capture options) {} 16) (M)irrors-Point to the vertical line and press the button to toggle the vertical mirror on or off. Point to |} the horizontal line and press the button to toggle the horizontal mirror on or off. Mirrors affect ALL fu}}nctions (Including LOAD and VIEW). The Fill function may go into an infinite loop with the mirrors on (P~}ress [ESC] to interrupt the Fill function). 17) (T)Plot type. Point to a letter and press the} button to set the plot type. (Affects ALL functions INCLUDING LOAD & VIEW). N=Normal-Replace }the dot under the pointer with the selected color. A=ANDed -Logically AND the} color under the pointer with the selected color. Black AND Blac}k = Black Black AND White = Black White AND White = White O=ORed- L}ogically OR the color under the pointer with the selected color. } Black OR Black = Black Black OR White = White White OR White = White X=Exclusiv}e ORed-Logically Exclusive OR the color under the pointer with the selected } color. Black AND Black = Black Black AND White = White White AND White} = Black (Try setting it to X. Select white as your color and draw some boxes that partially }overlap) 19) (U)ndo & (Clear). Point to undo and press the button the undo the last change ma}de to the graphic. Point to clear to clear the graphic. 20) Capture Options. First surround }an area using the capture function then point to one of these options. (I)nvert captured area, (H)orizont}ally flip captured area, (V)ertically flip captured area. 21) Load-Pointing the to top of the }screen will move toward the top of the list. Pointing near the bottom of the screen will move toward the} bottom of the list. Point to file you want to load and press the button. (Point on the edge or press [}ESC] to abort.) 22) Save-Point to the file you would like to replace or type a new filename. } 23) View-Point to all the graphics you would like to view then press on the edge of the screen }to start viewing. 24) Convert-This function allows you to copy graphics from a PrintShop forma}t disk or a DOS 2.0 disk to a PrintShop format disk or a DOS 2.0 disk. Type the numbers of the drives yo}u are going to use. If your destination disk is a DOS disk you must supply a filename to save the graphic(s) } under. It is suggested that you use the extension .ICS for your Icon Shop files. Files in DOS 2.0 format are} saved as follows. 520 byte graphic 16 byte name (520 byte graphic } 16 byte name)... 25) Format-Allows you to format disks comapatible with the PrintS}hop or DOS 2.0 The following keys} may be pressed for short cuts. 1-8 = select a color D = Draw L = Lines } R = Rectangles B = Boxes O = Ovals Q = Discs F = Fill area C = Cap}ture area M = Cycle through mirrors T = Cycle through plot types U = Undo} last change SHIFT-CLEAR = Clear graphic I = Invert captured area H = Horizontally f}lip captured area V = Vertically flip capptured area CTRL-L = Load CTRL-G = Get (Sam}e as load) CTRL-S = Save (PrintShop disks only) CTRL-P = Put (Same as save) CTRL-V = View } CTRL-C = Convert CTRL-F = Format CTRL-R = Read Patterns (Dos disks only) } CTRL-W = Write Patterns (Dos disks only) Most functions can be aborted by pressing }[ESC] If ANYTHING is displayed in the bottom of the screen, a key or the button must be presse}d. PrintShop is a trademark of Br0derbund Software. -------}----------------------------- The following is for advanced users. ------------------------------------ } Icon Shop is setup to use any type of controller one desires. All that is needed is a driver for that } controller. To do this, make a driver less then 1024 bytes long with it's entry point at $3000. The routin}e will be called at Vertical Blank and will be passed the current X and Y positions in X and Y. The curr}ent button status will be passed in A. The routine must return the new position in X,Y and the new butto}n value in A. X must be a number from 0-159 Y must be a number from 0-191 A must hav}e a value of 0 or 1 1=button NOT pressed 0=button pressed. Make sure your file} has the extention .OBJ then copy it to your Icon Shop disk and it will appear on the first menu. } The source files for the drivers that came with Icon Shop are included on the disk. They were written for the }Atari Macro Assembler. Feel free to improve on what's there or use it in other programs. } NOTE:The last line of each source says " END INIT". Drivers are loaded just as if you used the L option (Bina}ry Load) from the DOS 2.0 menu. This means that INIT addresses and RUN addresses WILL be called if there} is one in the file. "IT IS EXACTLY THE SAME AS BINARY LOAD FROM DOS 2.0" Use this to your advantage to} initialize variables or set up interrupts and in the mouse driver. PAGE 0 from $A0 to $FF is }free. o o--o o--o ! ! !1 ! !2 ! !3 ! !4 ! ! )o---------------o o--o o--o o--o o--o! ! !1 ! !2 ! !3 ! !4 !! ! o--o o--o o--o o--o! } ! o--o o--o o--o o--o! ! !5 ! !6 ! !7 ! !8 !! Graphic ! o--o o--o o--o o--o! ! o--o } o--o o--o o--o! ! !9 ! !10! !11! !12!! ! o--o o--o o--o o--o! ! o--o o--o o--o }o--o! ! !13! !14! !15! !16!! ! o--o o--o o--o o--o! ! o--o o--o o--o o--o! } ! !17! !18! !19! !20!o---------------o o--o o--o o--o o--oo-----------------------------------o! 21 ! 22 ! }23 ! 24 ! 25 !o-----------------------------------o 26 Instructions for the } Icon Shop. Copyright 1986 Gregg Tavares The NightHawk Group The Icon Shop was d }esigned tomake up for the defficiencies in thegraphic editor included with thePrintShop. It was also designed toallow th }e user to save PrintShopgraphics in a DOS 2.0 compatibleformat so that the user's creationsmay be traded with other users' }creations, especially over a modem.See Diagram.1-8) These are the colors andpatterns you may draw with. Point tothe } one you want to use and press thebutton (or a key 1-8). A blue framewill appear around the color. Colors3-8 are pattern }s. They may be usedjust like the first to colors. Ifyou don't like the ones included withthe Icon Shop you may edit them }.First, point to the one you want toedit. If the blue frame is notaround that pattern then press thebutton. Now, point }to a dot in thepattern and press the button. Thatdot will change to white if it wasblack, or to black if it was white.To } save your patterns, insert a DOS2.0 disk and press [CTRL]-W. Type alegal DOS 2.0 filename and pressreturn. To load patt }erns you havepreviously saved press [CTRL]-R.9) (D)raw-Point on the graphic towhere you want to change a dot to thesel }ected color and press the button.10) (L)ine-Point to where you wouldlike to start a line and press thebutton. Point to w }here you wouldlike the line to end and press thebutton.11) (R)ectangle-Point to where youwould like one corner of a rect }angleand press the button. Point to whereyou would like the opposite cornerand press the button.12) (B)ox-Point to wher }e you wouldlike one corner of a box and pressthe button. Point to where you wouldlike the opposite corner and pressthe } button.13) (O)val-Point to where you wouldlike the center of an oval and pressthe button. Move the pointer awayfrom th }e center of the oval until youhave the size and shape you want,then press the button.13) (Q)Disc-Point to where you would }like the center of a disc and pressthe button. Move the pointer awayfrom the center of the disc until youhave the size a }nd shape you want,then press the button.14) (F)ill-Point to an area you wouldlike to fill and press the button.If the fi }ll gets stuck press [ESC](This only happens occasionally ifthe mirrors are on).15) (C)apture-Point to one corner ofthe } area you would like to captureand press the button. Point to theopposite corner of the area and pressthe button. A new }rectangle willappear. Move the new rectangle tothe area where you would like to putwhat you have captured and press theb }utton. (Also see 20-Captureoptions)16) (M)irrors-Point to the verticalline and press the button to togglethe vertical m }irror on or off. Pointto the horizontal line and press thebutton to toggle the horizontalmirror on or off. Mirrors affec }t ALLfunctions (Including LOAD and VIEW).The Fill function may go into aninfinite loop with the mirrors on(Press [ESC] }to interrupt the Fillfunction).17) (T)Plot type. Point to a letterand press the button to set the plottype. (Affects A }LL functionsINCLUDING LOAD & VIEW).N=Normal-Replace the dot under the pointer with the selected color.A= }ANDed -Logically AND the color under the pointer with the selected color. Black AND Black = Black Blac }k AND White = Black White AND White = WhiteO=ORed- Logically OR the color under the pointer with the s }elected color. Black OR Black = Black Black OR White = White White OR White = WhiteX=Exclusive ORed-Logically Excl }usive OR the color under the pointer with the selected color. Black AND Black = Black Black A }ND White = White White AND White = Black(Try setting it to X. Select whiteas your color and draw some boxesthat partia }lly overlap)19) (U)ndo & (Clear). Point to undoand press the button the undo thelast change made to the graphic.Point } to clear to clear the graphic.20) Capture Options. First surroundan area using the capture functionthen point to one of } these options.(I)nvert captured area,(H)orizontally flip captured area,(V)ertically flip captured area.21) Load-Pointin }g the to top of thescreen will move toward the top ofthe list. Pointing near the bottomof the screen will move toward the }bottom of the list. Point to fileyou want to load and press thebutton. (Point on the edge or press[ESC] to abort.)22) } Save-Point to the file you wouldlike to replace or type a newfilename.23) View-Point to all the graphicsyou would lik }e to view then press onthe edge of the screen to startviewing.24) Convert-This function allows youto copy graphics from }a PrintShopformat disk or a DOS 2.0 disk to aPrintShop format disk or a DOS 2.0disk. Type the numbers of the drivesyou a }re going to use. If yourdestination disk is a DOS disk youmust supply a filename to save thegraphic(s) under. It is sugg }estedthat you use the extension .ICS foryour Icon Shop files. Files in DOS2.0 format are saved as follows. 520 byte gra }phic 16 byte name(520 byte graphic 16 byte name)...25) Format-Allows you to format diskscomapatible with the Prin }tShop or DOS2.0The following keys may be pressed forshort cuts.1-8 = select a colorD = DrawL = Lin }esR = RectanglesB = BoxesO = OvalsQ = DiscsF = Fill areaC = Capture areaM = Cycle through mirrorsT = Cycle through p }lot typesU = Undo last changeSHIFT-CLEAR = Clear graphicI = Invert captured areaH = Horizontally flip captured areaV } = Vertically flip capptured areaCTRL-L = LoadCTRL-G = Get (Same as load)CTRL-S = Save (PrintShop disks only)CTRL-P = Pu }t (Same as save)CTRL-V = ViewCTRL-C = ConvertCTRL-F = FormatCTRL-R = Read Patterns (Dos disks only)CTRL-W = Wri }te Patterns (Dos disks only)Most functions can be aborted bypressing [ESC]If ANYTHING is displayed in thebotto }m of the screen, a key or thebutton must be pressed.PrintShop is a trademark ofBr0derbund Software. }------------------------------------The following is for advanced users.------------------------------------Icon Shop is }setup to use any type ofcontroller one desires. All that isneeded is a driver for thatcontroller. To do this, make adri }ver less then 1024 bytes long withit's entry point at $3000. Theroutine will be called at VerticalBlank and will be passe }d the currentX and Y positions in X and Y. Thecurrent button status will be passedin A. The routine must return thenew }position in X,Y and the newbutton value in A.X must be a number from 0-159Y must be a number from 0-191A must have a val }ue of 0 or 1 1=button NOT pressed 0=button pressed.Make sure your file has the extention.OBJ then copy it to your }Icon Shopdisk and it will appear on the firstmenu.The source files for the drivers thatcame with Icon Shop are included }onthe disk. They were written for theAtari Macro Assembler. Feel free toimprove on what's there or use it inother progr }ams.NOTE:The last line of each sourcesays " END INIT". Drivers are loadedjust as if you used the L option(Binary Load) }from the DOS 2.0 menu.This means that INIT addresses andRUN addresses WILL be called if thereis one in the file. "IT IS } EXACTLYTHE SAME AS BINARY LOAD FROM DOS 2.0"Use this to your advantage toinitialize variables or set upinterrupts and in } the mouse driver.PAGE 0 from $A0 to $FF is free. ! !4 !! ! o--o o--o o--o o--o! Dthe mouse driver.PAGE 0 from $A0 to $FF is free. ! !4 !! ! o--o o--o o--o o--o! D;------------------------------------;; ATARI Mouse Driver; written by Bernhard Engl; modified by Gregg Tavares;;----}--------------------------------PMBASE = $D407COLOR3 = $02C7GPRIOR = $026FPORTA = $D300SDMCTL = $022FGRACTL = $D01DH}POSM0 = $D004STRIG0 = $0284NMIEN = $D40EVDSLST = $0200SDLSTL = $0230SDLSTH = $0231ICSPRZ = $2CVCOUNT = $D40BDMACTL =} $D400SETVBV = $E45CXITVBV = $E462POKMSK = $10VTIMR1 = $210IRQEN = $D20EAUDC1 = $D201AUDF1 = $D200STIMER = $D209}CRITIC = $42 ORG $3000 CPX XPOS ;Has X been BNE KEYPRESSED ;changed? CPY YPOS ;}Has Y been BNE KEYPRESSED ;changed?* No, so add changes. TXA CLC ADC XADD STA XPOS } LDX XADD BMI XMINUS CMP #160 BCC XOKAY LDA #159 BNE XNOTOKXMINUS LDA XPOS } CMP #160 BCC XOKAY LDA #0XNOTOK STA XPOSXOKAY TYA CLC ADC YADD STA YPOS} LDY YADD BMI YMINUS CMP #192 BCC YOKAY LDA #191 BNE YNOTOKYMINUS LDA YPOS } CMP #192 BCC YOKAY LDA #0YNOTOK STA YPOSYOKAY LDX XPOS LDY YPOSKEYPRESSED }LDA #0 STA XADD STA YADD STX XPOS STY YPOS LDA STRIG0 RTSINIT;; get old input;} LDA PORTA STA OLPORT LDA #0 STA XADD STA YADD SEI LDA #LOW READMOUSE } STA VTIMR1 LDA #HIGH READMOUSE STA VTIMR1+1 CLI LDA POKMSK ORA #1 STA POKMSK } STA IRQEN LDA #0 STA AUDC1 LDA #255 STA AUDF1 STA STIMER RTS;; variables;MOUS}EX DS 1MOUSEY DS 1OLPORT DS 1OLBUTT DS 1PRTEMP DS 1MOTEMP DS 1MOMOVE DS 1XADD DS 1YADD DS 1XPOS DS 1YPOS DS} 1;;------------------------------------;; TIMER: track mouse; movement and update position;;-------------------------}-----------READMOUSE TXA PHA TYA PHA; SEI LDA CRITIC BNE BADNEWS LD}A #0 STA NMIEN LDA PORTA STA PRTEMP LDA OLPORT ASL A EOR PRTEMP AND #$0A } STA MOMOVE LDA OLPORT EOR PRTEMP STA MOTEMP LSR A ORA MOTEMP AND #5 ORA }MOMOVE TAX LDA MOVTAB,X STA MOMOVE LDA PRTEMP STA OLPORT; LDA MOMOVE ;Get stic}k value LSR A ;Check up. BCS NOTUP INC YADDNOTUP LSR A ;Check down. BCS } NOTDOWN DEC YADDNOTDOWN LSR A ;Check left. BCS NOTLEFT INC XADDNOTLEFT LSR A  } ;Check right. BCS NOTRIGHT DEC XADDNOTRIGHT; LDA #$C0 ; enable DLI & VBI STA NMIENBA }DNEWS CLI PLA TAY PLA TAX PLA RTI;; movement translation table;MOVTAB  } DB 0,4,0,8,1,5,1,9 DB 0,4,0,8,2,6,2,10 END INIT LDA STRIG0 ;Read button. RTSCNTR  }DS 1RESET DS 1INIT RTS END INIT Driver; written by Bernhard Engl; modified by Gregg Tavares;;----5******* Controller routines.* This one is for a JOYSTIK. This* routine may be changed for any* type for controller}. Values* returned must be-* X reg = X position of cursor* (must not be higher than* 159)}* Y reg = Y position of cursor* (must not be higher than* 191)* A reg = 0 = button pressed*} 1 = button not pressed** Previous values are passed TO this* routine in the same manner.******** Equates} for joystick controller.*STICK0 = $278STRIG0 = $284** ORIGIN MUST BE AT $3000* ORG $3000CONTROLLER LD}A STICK0 CMP #15 BNE ACCELERATE LDA #16 STA RESET LDA #1 STA CNTRACCELERATE } DEC CNTR BPL NOTRIGHT LSR RESET LDA RESET STA CNTR LDA STICK0 ;Get stick value } LSR A ;Check up. BCS NOTUP CPY #0 ;Don't move up BEQ NOTUP ;if already at } ;top. DEYNOTUP LSR A ;Check down. BCS NOTDOWN CPY #191 ;Don't mov}e down BEQ NOTDOWN ;if already at INY ;bottom.NOTDOWN LSR A ;Check left. }BCS NOTLEFT CPX #0 ;Don't move left BEQ NOTLEFT ;if already at DEX ;left edge.NOT}LEFT LSR A ;Check right. BCS NOTRIGHT CPX #159 ;Don't move right BEQ NOTRIGHT ;if }already at INX ;right edge.NOTRIGHT LDA STRIG0 ;Read button. RTSCNTR DS 1RESET DS } 1INIT RTS END INITis one is for a JOYSTIK. This* routine may be changed for any* type for controller$PADDL0 = $270PADDL1 = $271STICK0 = $278 ORG $3000 STX XPOS STY YPOS LDA PADDL0 }CMP #3 BEQ XNOTPRESSED LDA PADDL0 SEC SBC #3 TAX LDA XSMOOTH,X STA X0 } SEC SBC X2 JSR ABS CMP #4 BCC XOKAY LDA X0 SEC SBC X1 JSR ABS } CMP #4 BCS XBADXOKAY LDA X0 STA XPOSXBADXNOTPRESSED LDA PADDL1 CMP #3 BEQ YNO }TPRESSED LDA PADDL1 SEC SBC #3 TAX LDA YSMOOTH,X STA Y0 SEC SBC Y2 !} JSR ABS CMP #4 BCC YOKAY LDA Y0 SEC SBC Y1 JSR ABS CMP #4 BCS Y"}BADYOKAY LDA Y0 STA YPOSYBADYNOTPRESSED LDA X1 STA X2 LDA X0 STA X1 LDA#} Y1 STA Y2 LDA Y0 STA Y1 LDX #1 LDA STICK0 CMP #15 BEQ NOPRESS LDX #$}0NOPRESS TXA LDX XPOS LDY YPOS RTSINIT RTSABS BPL ARTS EOR #$FF CL%}C ADC #1ARTS RTSXSMOOTH DB 0,1,1,2 DB 3,4,4,5 DB 6,6,7,8 DB 9,9,10,11 &} DB 11,12,13,14 DB 14,15,16,16 DB 17,18,19,19 DB 20,21,21,22 DB 23,24,24,25 DB 26,26'},27,28 DB 29,29,30,31 DB 31,32,33,34 DB 34,35,36,36 DB 37,38,39,39 DB 40,41,41,42 (} DB 43,44,44,45 DB 46,46,47,48 DB 49,49,50,51 DB 51,52,53,54 DB 54,55,56,56 DB 57)},58,59,59 DB 60,61,61,62 DB 63,64,64,65 DB 66,66,67,68 DB 69,69,70,71 DB 71,72,73,74*} DB 74,75,76,76 DB 77,78,79,79 DB 80,81,81,82 DB 83,84,84,85 DB 86,86,87,88 DB +} 89,89,90,91 DB 91,92,93,94 DB 94,95,96,96 DB 97,98,99,99 DB 100,101,101,102 DB 103,1,}04,104,105 DB 106,106,107,108 DB 109,109,110,111 DB 111,112,113,114 DB 114,115,116,116 -} DB 117,118,119,119 DB 120,121,121,122 DB 123,124,124,125 DB 126,126,127,128 DB 129,129,130,.}131 DB 131,132,133,134 DB 134,135,136,136 DB 137,138,139,139 DB 140,141,141,142 DB 14/}3,144,144,145 DB 146,146,147,148 DB 149,149,150,151 DB 151,152,153,154 DB 154,155,156,156 0} DB 157,158,159,159YSMOOTH DB 0,1,2,3 DB 3,4,5,6 DB 7,8,9,9 DB 10,11,12,13 DB 141},15,15,16 DB 17,18,19,20 DB 21,21,22,23 DB 24,25,26,27 DB 27,28,29,30 DB 31,32,33,332} DB 34,35,36,37 DB 38,39,39,40 DB 41,42,43,44 DB 45,45,46,47 DB 48,49,50,51 DB 3} 51,52,53,54 DB 55,56,57,57 DB 58,59,60,61 DB 62,63,63,64 DB 65,66,67,68 DB 69,69,70,4}71 DB 72,73,74,75 DB 75,76,77,78 DB 79,80,81,81 DB 82,83,84,85 DB 86,87,87,88 5}DB 89,90,91,92 DB 93,93,94,95 DB 96,97,98,99 DB 99,100,101,102 DB 103,104,105,105 DB 6} 106,107,108,109 DB 110,111,111,112 DB 113,114,115,116 DB 117,117,118,119 DB 120,121,122,1237} DB 123,124,125,126 DB 127,128,129,129 DB 130,131,132,133 DB 134,135,135,136 DB 137,138}8,139,140 DB 141,141,142,143 DB 144,145,146,147 DB 147,148,149,150 DB 151,152,153,153 9}DB 154,155,156,157 DB 158,159,159,160 DB 161,162,163,164 DB 165,165,166,167 DB 168,169,170,1:}71 DB 171,172,173,174 DB 175,176,177,177 DB 178,179,180,181 DB 182,183,183,184 DB 185;},186,187,188 DB 189,189,190,191XPOS DS 1YPOS DS 1X0 DS 1Y0 DS 1X1 DS 1Y1 DS 1X2 <} DS 1Y2 DS 1 END INIT0 = $278 ORG $3000 STX XPOS STY YPOS LDA PADDL0 %B'DOS SYSB-+AUTORUN SYSBXXP BCS BMOUSE MACBJOYSTIK MACB!KOALAPADMAC